<?php
class CategoryModel extends Model{
	public $table='category';
	public $validate = array(
		array('cname','nonull','分类名称不能为空',2,3),
		array('cname','maxlen:20','分类名称不能超过20个字符',2,3),
		array('keyword','nonull','分类关键字不能为空',2,3),	
		array('keyword','maxlen:255','分类关键字长度 1 到 255位',2,3),
		array('order','num:1,65535','请填写1到65535的排序数字',2,3),
		);
	/**
	 * [add_data 添加数据]
	 */
	public function add_data(){
		return $this->add();
	}

	/**
	 * [get_data 获得数据]
	 * @return [type] [description]
	 */
	public function get_data(){
		return $this->all();
	}

	/**
	 * [change_stat 更改状态]
	 * @return [type] [description]
	 */
	public function change_stat(){
		//更改状态
		$stat = Q('post.stat', 0, 'intval');
		$cid = Q('post.cid', 0, 'intval');

		$where = array('cid'=>$cid);
		//如果$stat是0的时候，要关闭
		if($stat){
			$this->where($where)->update(array('is_show'=>0));
		}else{
			$this->where($where)->update(array('is_show'=>1));
		}
	}

	/**
	 * [del_data 删除分类]
	 * @return [type] [description]
	 */
	public function del_data($cid){
		//判断是否有子级，如果有子级则提示删除子级
		//getField获得指定字段值，不是数组
		$data = $this->where(array('pid'=>$cid))->getField('cid');
		if($data){
			$this->error = '请先删除该分类的子级';
			return false;
		}
		//直接删除
		$this->where(array('cid'=>$cid))->delete();
		return true;
	}

	/**
	 * [get_one_data 得到一条数据]
	 * @param  [type] $where [description]
	 * @return [type]        [description]
	 */
	public function get_one_data($where = NULL){
		return $this->where($where)->find();
	}
	/**
	 * [get_one_data 得到所有子集数据]
	 * @param  [type] $where [description]
	 * @return [type]        [description]
	 */
	public function get_data_son($data,$cid){
		$arr=array();
		foreach ($data as $v) {  
		   if ($v['pid']==$cid) {
		   	  $arr[]=$v['cid'];
		   	  $arr=array_merge($arr,$this->get_data_son($data,$v['cid']));
		   }
		}
		return $arr;
	}

	/**
	 * [update_data 修改分类]
	 * @return [type] [description]
	 */
	public function update_data($where){
		$this->where($where)->save();
	}


}